/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;
import datos.Sp_Ejecutan;
import datos.Sp_Consultan;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;


/**
 *
 * @author Esteban
 */
public class ControladorClientes 
{
    private static ControladorClientes _Instancia;
    public Sp_Ejecutan _SPEjecutan;
    public Sp_Consultan _SPConsultan;
    
    
    final String ESPACIO = "";
    
    private ControladorClientes(){}
    
    public static ControladorClientes getInstancia(){
        if(_Instancia == null){
            _Instancia = new ControladorClientes();
        }
        return _Instancia;
    }
    
    public boolean guardarCliente(String nombre, String aps, String tel, String dir, String email){
        
        Cliente cliente = new Cliente();
        
        cliente.setNombre(nombre);
        cliente.setApellidos(aps);
        cliente.setCorreo(email);
        cliente.setTelefono(tel);
        cliente.setDireccion(dir);
        
        _SPEjecutan = Sp_Ejecutan.getInstance();
        
        return _SPEjecutan.SP_InsertarCliente(cliente);
        
        
    }
    
    public Vector<Cliente> buscarClienteXTelefono(String tel){
       
        _SPConsultan = Sp_Consultan.getInstance();
        Vector<Cliente> cliente = new Vector();
        cliente = _SPConsultan.SP_RetornaClienteXTel(tel);
        return cliente;
    }
    
    public Vector<Cliente> buscarClientesXNombre(String busqueda){
        _SPConsultan = Sp_Consultan.getInstance();
        return _SPConsultan.SP_RetornaClienteXNombre(busqueda);
    }
    
    public int modificarCliente(Cliente cli, String telefono){
        
        //buscamos si hay un cliente ya registrado que tenga ese mismo numero de telefono
        Vector<Cliente> cliente = buscarClienteXTelefono(cli.getTelefono());
        
        if((cliente.size() > 0) && (cliente.elementAt(0).getTelefono().compareTo(telefono) != 0))
        {
            return 1;
        }else{
            _SPEjecutan = Sp_Ejecutan.getInstance();
           if(_SPEjecutan.SP_ModificarCliente(cli, telefono)){
               return 3;
           }else{
               return 2;
           }
        }   
    }
    
    public boolean eliminarCliente(String telefono){
        _SPEjecutan = Sp_Ejecutan.getInstance();
        return _SPEjecutan.SP_EliminarCliente(telefono);
    }
    
}
